1. Field of the Invention
The present invention relates to a disk array apparatus which has a built-in cache memory, and more particularly, to a disk array apparatus (a disk array apparatus having a data protection function) which can protect data before a transfer of write data is interrupted, even if the data transfer is interrupted due to a failure in a host computer, a failure in a host interface cable (a cable between the host computer and disk array apparatus), and the like.
2. Description of the Related Art
Generally, upon receipt of a write request (data write request) from a host computer, a disk array apparatus having a built-in cache memory returns a response to the host computer at the time received data (write data) is stored on the cache memory, and writes the data into a disk drive (physical disk) asynchronously with an I/O (Input/Output) operation between the host computer and disk array apparatus to improve the performance.
When a transfer of write data is interrupted due to a failure in the host computer, a failure in a host interface cable, or the like during the transfer of the write data from the host computer, the disk array apparatus cannot ensure contents of data which should be written thereinto in the transfer of write data.
To address this problem, a conventional disk array apparatus embeds data in the write range with information which indicates that the data is error data which cannot be corrected, when the disk array apparatus receives the data at a later time.
FIG. 1 shows a transition of a data attribute (data state) in a destination cache page on a cache memory in the conventional disk array apparatus when data is written into the cache memory while DIRTY data (data which had not been written into a disk drive) already exists in a write range within the cache page (cache page having the write range specified by a write request), and a transfer of the write data is normally completed. “DIRTY,” “CLEAN,” and “NULL” in the data state are identical in meaning to the respective data states in the present invention, later described.
Upon receipt of a write request from a host computer while DIRTY data already exists in a write range on a destination cache page (see (a) of FIG. 1), the conventional disk array apparatus stores write data from the host computer based on the write request in the cache page (completes a transfer of write data), and extends a range, the data state of which indicates “DIRTY” to the write range (see (b) of FIG. 1).
Further, as a disk interface controller in the disk array apparatus (interface controller similar to disk interface controller 23 shown in FIG. 3) writes the DIRTY data into the disk drive (write-back operation), the data state for the write range in the cache page is changed to “CLEAN” (CLEAN data refers to data which has been written into the disk drive)(see (c) of FIG. 1).
FIG. 2 shows a transition of data state in a destination cache page on the cache memory in the conventional disk array apparatus when data is written into the cache memory while DIRTY data already exists in a write range within the cache page, and a transfer of the write data is interrupted.
Like the situation in FIG. 1, the conventional disk array apparatus starts a transfer of write data at the time it receives a write request from the host computer when DIRTY data already exists in the write range on the destination cache page (see (a) of FIG. 2).
In this event, when the transfer of write data is interrupted, contents of data cannot be ensured in the write range (indicated by “XXXXX” in (b) of FIG. 2).
To avoid possible problems, upon reading data in the write range within the cache page at a later time, the conventional disk array apparatus embeds the data with information (information indicative of an uncorrectable error) indicating that the data suffers from an uncorrectable error (the data cannot be corrected) (see (c) of FIG. 2).
Then, as the disk interface controller in the disk array apparatus writes the DIRTY data (DIRTY data including the uncorrectable data) into the disk drive (write-back operation), the data state for the write range in the cache page is changed to “CLEAN” (see (d) of FIG. 2).
In the conventional disk array apparatus described above, when data is written into the cache memory while DIRTY data already exists in a write range of a destination cache page, and a transfer of write data is interrupted, data before interruption of the write data transfer is corrupted (uncorrectable data), so that an application (application program) running on the host computer must recover data from a backup apparatus such as a magnetic tape drive or the like, thus giving rise to a problem that a long time is required for a recovery from a failure (recovery operation upon occurrence of a failure).
To avoid this problem, it is contemplated that a disk array apparatus is provided with an additional buffer memory to normally store write data from the host computer once in the buffer memory before the write data is transferred to the cache memory. However, this technique requires additional hardware (buffer memory), and data is transferred from the buffer memory to the cache memory every time, causing another problem that the write performance is significantly degraded.